import React, { Component } from 'react'

import * as CodeMirror from 'codemirror/lib/codemirror'
import 'codemirror/lib/codemirror.css'
import 'codemirror/mode/go/go'

import './CodeEdit.less'

export default class CodeEdit extends Component {
  componentDidMount() {
    this.codeMirrorEditor = CodeMirror.fromTextArea(this.elm, {
      mode: 'go', // 编辑器语言
      theme: 'default', // 编辑器主题
      matchBrackets: true, // 括号匹配
      lineWrapping: true,
      gutters: ['CodeMirror-linenumbers', 'CodeMirror-foldgutter', 'CodeMirror-lint-markers'],
      lineNumbers: true, // 显示行号
    })

    this.codeMirrorEditor.setSize('auto', '350px') // 设置代码框的长宽
    // this.codeMirrorEditor.setValue(`package main
    // import "fmt"

    // func main() {
    //    var a int= 20   /* 声明实际变量 */
    //    var ip *int        /* 声明指针变量 */

    //    ip = &a  /* 指针变量的存储地址 */

    //    fmt.Printf("a 变量的地址是: %x", &a  )

    //    /* 指针变量的存储地址 */
    //    fmt.Printf("ip 变量储存的指针地址: %x", ip )

    //    /* 使用指针访问值 */
    //    fmt.Printf("*ip 变量的值: %d", *ip )
    // }`);
  }

  getValue() {
    return this.codeMirrorEditor.getValue()
  }

  render() {
    return <div className="CodeEdit">
      <textarea className="form-control" ref={elm => this.elm = elm} name="code"></textarea>
    </div>
  }
}
